AWSでLambda、EventBridge、CloudWatchを活用したスケジュールタスク
はじめに
こんにちは!アライブのヘマントです。このブログでは、AWS LambdaとAmazon EventBridgeを活用してスケジュールタスクを設定し、Amazon CloudWatchでそれを監視する方法をご紹介します。このセットアップを使えば、AWS上で定期的なタスクを自動化し、CloudWatchのメトリクスやログを通じて実行状況を可視化することが可能になります。
AWS
Amazon Web Services(AWS)は、クラウドサービスプラットフォームで、コンテンツ配信、データベースストレージ、処理能力など、企業の成長を支える機能を提供します。コンピュート、ストレージ、ネットワーキング、データベース、管理ツール、セキュリティなど、さまざまなカテゴリの幅広いサービスが含まれています。
AWS Lambda
AWS Lambdaは、イベントに応じてコードを実行するサーバーレスのコンピューティングサービスです。高可用性のコンピュートインフラでコードを実行し、リソースの管理はすべて自動で行います。例えば、Amazon API Gateway経由のHTTPリクエストやS3内のオブジェクトの変更に応答する形で利用できます。
AmazonEventbridge
Amazon EventBridgeは、さまざまなAWSサービスやSaaSアプリケーションを接続し、イベント駆動型のアプリケーションを構築できるサーバーレスのイベントバスサービスです。このブログでは、EventBridgeを使ってLambda関数の実行をスケジュールし、CloudWatchで監視可能な定期的なタスクを作成します。
AmazonCloudwatch
Amazon CloudWatchは、AWSリソースやAWSで実行中のアプリケーションの監視および可観測性を提供するサービスです。CloudWatchでは、メトリクス、ログ、アラートを通じてアプリケーションの健全性を監視したり、リソースしきい値に対してアラームを設定したりできます。このブログでは、スケジュールタスクのLambda呼び出しメトリクスをCloudWatchで追跡します。
デモ
AWS マネジメントコンソールで「Lambda」に移動し、「Create Function」を選択します。
関数に名前を付け、ランタイムとしてPythonを選択します(または希望の言語を選択)。アクセス権を設定するか、デフォルトオプションを使用します。
関数のコードエディタにデフォルトコードを使うか、必要に応じてカスタムコードを追加します。
マネジメントコンソールで「Amazon EventBridge」を検索し、「Create Schedule」を選択します。
スケジュールに名前を付け、デフォルトグループを使用します。「Recurring Schedule」を選択します。
「Rate-based schedule」で「1分間隔」に設定します。フレキシブルウィンドウをオフにして次に進みます。
「Target details」で「AWS Lambda Invoke」を選択します。
「Retry Policy」 を無効化します。
他の設定はデフォルトのままにして、「Next」をクリックします。
設定を確認し、「Create Schedule」をクリックして完了します。
マネジメントコンソールで「CloudWatch」に移動し、「All Metrics」を検索して「Lambda>byfunctionname」を選択します。
「Schedule function」を選択し、メトリクス「Invocations」を表示して、カスタム時間を45分に設定して適用します。
Conclusion
AWS Lambda、EventBridge、CloudWatchを使ってスケジュールタスクを自動化し、管理することで、AWS上での定期ワークフロー管理が効率的に行えます。EventBridgeによるスケジュール管理、Lambdaのタスク実行、CloudWatchのモニタリングとアラート設定により、ワークフローの可視性と制御性が向上します。このセットアップは、作業時間の短縮と運用効率の向上を実現し、自動化と監視の両面で業務をサポートします。